package com.enjoyor.soa.traffic.api.ubms.service.dubbo;



import com.enjoyor.soa.traffic.api.ubms.dto.OrganInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护机构信息的Dubbo服务
 * @author yuankun
 * @version V1.0
 */
public interface DubboOrganInfoService {
	/**
	 * 返回所有机构信息
	 * @return ResultPojo 所有机构信息
	 */
	public ResultPojo getOrganInfo();
	
	/**
	 * 分页返回所有机构信息
	 * @param page 分页对象
	 * @return ResultPojo 包含机构信息的分页对象
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getPageOrganInfo(Page page);
	/**
	 * 返回所有机构信息
	 * @param orderSeq 
	 * @param orgName 
	 * @param orgId 
	 * @return ResultPojo 所有机构信息
	 */
	public ResultPojo getOrganInfo(String orgId, String orgName, String orderSeq);

	/**
	 * 返回所有机构名称和编码
	 * @param orgName
	 * @param orgId
	 * @return ResultPojo 所有机构名称和编码
	 */
	public ResultPojo getOrganName(String orgId, String orgName);

	/**
	 * 返回指定编码的机构信息
	 * @param orgId 机构编码
	 * @return ResultPojo 机构信息
	 */
	public ResultPojo getOrganInfoById(String orgId);
	
	/**
	 * 按名称匹配并返回机构信息
	 * @param orgName 机构名称
	 * @return ResultPojo 机构信息
	 */
	public ResultPojo getOrganInfoByName(String orgName);
	
	/**
	 * 添加一条机构信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param organInfoDto 机构信息
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addOrganInfo(String token, OrganInfoDto organInfoDto);
	
	/**
	 * 修改一条机构信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param organInfoDto 机构信息
	 * @return ResultPojo 修改结果
	 */
	public ResultPojo editOrganInfo(String token, OrganInfoDto organInfoDto);
	
	/**
	 * 删除指定编码的机构信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param orgId 机构编码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removeOrganInfo(String token, String orgId);
	
	//public List<Map<String,Object>> statOrganInfo(Map<String, Object> map)
	public ResultPojo statOrganInfo(String type);

	@SuppressWarnings("rawtypes")
	public ResultPojo getPageEasyUiOrganInfo(Page page, String orgId, String orgName, String orgType, String orderSeq);
}
